package com.example.heartprotectionserver.util;

import com.example.heartprotectionserver.Exception.BusinessException;
import com.example.heartprotectionserver.model.Code;
import com.example.heartprotectionserver.model.Result;

import java.util.HashMap;
import java.util.Map;

/**
 * 处理结果类的工具类
 */

public class ResultUtil {
    public static final Map<Integer,String > maps = new HashMap<>();
    static {
        //常用的错误信息可以写进map里面
        maps.put(Code.BUSINESS_ERR,"业务异常");
        maps.put(Code.SYSTEM_ERR,"系统异常");
        maps.put(Code.SYSTEM_UNKNOW_ERR,"未知异常");
    }
    /**
     * 业务成功执行，将查询数据包装成标准结果类
     * @param data
     * @return Result
     */
    public static Result getSuccess(Object data){
        return new Result(Code.SUCCESS,"success",data);
    }

    /**
     * 业务执行失败，返回错误原因(自定义错误信息)
     * @param code
     * @param msg
     * @return Result
     */
    public static Result getError(Integer code,String msg){
        return new Result(code,msg,null);
    }

    /**
     * 业务执行失败，返回错误原因(固定的错误信息)
     * @param code
     * @return Result
     */
    public static Result getError(Integer code){
        String msg = "未定义错误";
        if(maps.containsKey(code)){
            return new Result(code,maps.get(code),null);
        }
       else {
           throw new BusinessException("该结果码未定义错误信息", Code.BUSINESS_ERR);
        }
    }
}
